package com.sunwayhorizo.health.hl7.vocabulary;

import com.sunwayhorizo.health.hl7.datatypes.CS;
import com.sunwayhorizo.health.hl7.datatypes.common.InternalFactory;

/**
 * 用于维护actII中identifierName属性
 * 表示唯一标识的类型，与rootId,extensionTxt共同确定ii的唯一性
 * 用来区分同一动作标识值相同时类型的不同
 * @author Obama
 *
 */

public enum ActIICode
{
    //PatientEncounet
    INDEPARTMENT("入科"),
    HOSPITALIZED("入院"),
    RECEIVING("接诊"),
    PATIENTTRANSFER("转科"),
    DISCHARGED("出院"),
    
    //InvoiceElement
    INVOICEELEMENTID("收费费用编码"),
    
   
    //Observation
    CONSULTATIONID("会诊单号"),
    EXAMITEMCODE("检查项目编号"),
    LABITEMCODE("检验项目编号"),
    
    //Procedure
    TREATITEMCODE("治疗项目编号"),
    SURGERYITEMCODE("手术项目编号"),
    ANAEROBICITEMCODE("麻醉项目编号"),
    NURSINGITEMCODE("护理项目编号"),
    OTHERITEMCODE("其他项目编码<非药疗项目没有分类的>"),
    ;
    private CS cs;
    private String description;
    private Class<?> clazz;
    private String conceptCode;

    private ActIICode()
    {
        this.cs = InternalFactory.newCS(this.toString());
    }


    private ActIICode(String description)
    {
        this.description = description;
        this.cs = InternalFactory.newCS(this.toString());
    }
    
    


    private ActIICode(String description, Class<?> clazz)
    {
        this.cs = InternalFactory.newCS(this.toString());
        this.description = description;
        this.clazz = clazz;
    }

    
    

    private ActIICode(String description, Class<?> clazz, String conceptCode)
    {
        this.cs = InternalFactory.newCS(this.toString());
        this.description = description;
        this.clazz = clazz;
        this.conceptCode = conceptCode;
    }


    public String getDescription()
    {
        return description;
    }

    public CS getCs()
    {
        return cs;
    }

    public Class<?> getClazz()
    {
        return clazz;
    }

    public String getConceptCode()
    {
        return conceptCode;
    }

}
